package aboutuser;

import tool.*;

import java.util.Scanner;

public class AdminUser extends User{
    //子类继承父类 如果子类有构造方法 那么子类必须先实现父类的构造方法，才能实现自己的构造方法
    //俗话说 没有爹哪来的儿子 ， 没有儿子哪来的孙子
    public AdminUser(String name) {
        super(name);
        this.iOperations = new IOperation[]{
                new Quit(),
                new Find(),
                new Add(),
                new Del(),
                new Show()
        };
    }

    //子类继承父类 父类有普通方法的话 ， 可以选择是否重写
    // 但如果 父类方法 是抽象方法，那么该方法必须重写
    @Override
    public int menu() {
        System.out.println("======管理用户菜单======");
        System.out.println("1. 查找图书");
        System.out.println("2. 新增图书");
        System.out.println("3. 删除图书");
        System.out.println("4. 显示图书");
        System.out.println("0. 退出系统");
        System.out.println("======================");
        System.out.println("请输入你的选择");
        Scanner myScanner = new Scanner(System.in);
        int choice = myScanner.nextInt();
        return choice;

        //到此时 我们的选择就都做好了 但具体的实现怎么办呢？
        //1. 我们需要一个数组 去存放我们的操作种类，而且 管理用户的操作方法 和 普通用户的操作方法 还有一定的不同
        //2. 但 定义一个数组 数组里面是方法？
        //3. 我们可以定义一个接口 然后具体的方法定义成类 最后让这些 实现我们的接口
        //   接口里面不需要有具体实现 具体实现还是在类里面
        //   只不过 这个接口 算是一个标记 把这些 类（中的独特方法）都归在一起
        //   并且 之前的数组需求 此时可以让 接口承担

        // ps: 一个小知识点  常见的引用类型 分别 是
        //             类   接口   数组

        //那么下面需要做的就是 重写 加一个 包（里面装方法 和 标记接口）



    }
}
